#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QColorDialog>
#include <QPushButton>
#include <QDebug>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    //点击按钮之后，创建一个颜色对话框,根据用户选择的颜色来更改主窗口的背景色
    QPushButton *button=new QPushButton(this);
    button->setText("点击创建消息对话框");
    button->setGeometry(200,200,300,200);
    connect(button,&QPushButton::clicked,this,&MainWindow::handler);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::handler()
{
//    //古老的方式
//    //创建颜色对话框对象
//    QColorDialog *dialog=new QColorDialog(this);
//    //显示
//    dialog->exec();
//    //销毁
//    //delete dialog;

    //打开一个颜色对话框
    QColor color=QColorDialog::getColor(QColor(0,255,0),this,"颜色对话框");
    qDebug()<<color;
    //可以基于用户选择的颜色，来修改主窗口的背景色
    //通过QSS的方式设置主窗口的背景色
    //color.redF()函数表示返回百分比[0,1]的数字表示红色占255的百分比
    //方式1
//    QString style="background-color:rgb("+QString::number(color.red())+","+
//                                          QString::number(color.green())+","+
//                                          QString::number(color.blue())+");";
    //方式2
    char style[1024]={0};
    sprintf(style,"background-color:rgb(%d,%d,%d);",color.red(),color.green(),color.blue());

    //设置主窗口的背景色
    this->setStyleSheet(style);
}

